﻿Public Class frmTrZleceniaSzukaj

    Private mvarZlecenie As clsTrSzukanie
    Private mvarDbHolder As clsDataBase
    Private mvarUzytkownik As clsUzytkownik
    Private mvarWyznUruchomienia As Boolean

    Public Sub New()

        ' To wywołanie jest wymagane przez projektanta.
        InitializeComponent()

        ' Dodaj inicjację po wywołaniu funkcji InitializeComponent().
        mvarDbHolder = New clsDataBase(VAR_CONNECTION_PARAMETERS, VAR_ERROR_HANDLER)

        mvarUzytkownik = CType(clsUzytkownik.Instance(), clsUzytkownik)

        PobierzKlientow()
        PobierzStatusZlecenia()
        'Uprawnienia()

    End Sub

    'Private Sub Uprawnienia()

    '    If mvarUzytkownik.Uprawnienia("zlecenie") = "00" Then
    '        cmdNoweZlecenie.Enabled = False
    '        cmdEdycjaZlecenia.Enabled = False
    '        cmdKopiuj.Enabled = False
    '    End If

    '    If mvarUzytkownik.Uprawnienia("zlecenie") = "01" Then
    '        '  cmdNoweZlecenie.Enabled = False
    '        cmdKopiuj.Enabled = False
    '    End If

    '    If mvarUzytkownik.Uprawnienia("wysylka") = "00" Then
    '        cmdWysylka.Enabled = False
    '    End If

    'End Sub

    Private Sub PobierzKlientow()

        Dim lvarDataTable As New DataTable

        lvarDataTable = clsKlient.PobierzWszystkichKlientow(mvarDbHolder, VAR_ERROR_HANDLER)

        If Not lvarDataTable Is Nothing Then
            For Each lvarRow As DataRow In lvarDataTable.Rows
                cmbNazwaFirmy.Items.Add(New clsKlient(CInt(lvarRow("id")), CStr(IIf(IsDBNull(lvarRow("nazwa_pelna")), "", lvarRow("nazwa_pelna"))), CStr(IIf(IsDBNull(lvarRow("nazwa_skrocona")), "", lvarRow("nazwa_skrocona"))), CStr(IIf(IsDBNull(lvarRow("ulica")), "", lvarRow("ulica"))), CStr(IIf(IsDBNull(lvarRow("numer")), "", lvarRow("numer"))), CStr(IIf(IsDBNull(lvarRow("kod_pocztowy")), "", lvarRow("kod_pocztowy"))), CStr(IIf(IsDBNull(lvarRow("miejscowosc")), "", lvarRow("miejscowosc"))), CStr(IIf(IsDBNull(lvarRow("kraj")), "", lvarRow("kraj"))), CStr(IIf(IsDBNull(lvarRow("telefon")), "", lvarRow("telefon"))), CStr(IIf(IsDBNull(lvarRow("e_mail")), "", lvarRow("e_mail"))), CStr(IIf(IsDBNull(lvarRow("nip")), "", lvarRow("nip"))), CStr(IIf(IsDBNull(lvarRow("etykieta")), "", lvarRow("etykieta"))), CStr(IIf(IsDBNull(lvarRow("wysylka")), "", lvarRow("wysylka"))), CStr(IIf(IsDBNull(lvarRow("termin_platnosci")), "", lvarRow("termin_platnosci"))), CStr(IIf(IsDBNull(lvarRow("uwagi")), "", lvarRow("uwagi")))))
            Next
        End If

    End Sub

    Private Sub PobierzStatusZlecenia()

        Dim lvarDataTable As New DataTable

        lvarDataTable = clsStatus.PobierzWszystkieOpcje(mvarDbHolder, VAR_ERROR_HANDLER)

        If Not lvarDataTable Is Nothing Then
            For Each lvarRow As DataRow In lvarDataTable.Rows
                Select Case CInt(lvarRow("id"))
                    Case 1
                        cmbStatusZlecenia.Items.Add(New clsStatus(CInt(lvarRow("id")), CType(IIf(IsDBNull(lvarRow("nazwa")), "", lvarRow("nazwa")), String)))
                    Case 4 To 6
                        cmbStatusZlecenia.Items.Add(New clsStatus(CInt(lvarRow("id")), CType(IIf(IsDBNull(lvarRow("nazwa")), "", lvarRow("nazwa")), String)))
                End Select
            Next
        End If

    End Sub

    Private Sub Szukaj()

        Dim lvarCommand As String
        Dim lvarI As Integer
        Dim lvarWyzn As Boolean = False

        If txtNumerZlecenia.Text = String.Empty And dtpDataRealizacjiOd.Checked = False And dtpDataRealizacjiDo.Checked = False And chbDataRealizacji.Checked = False And cmbNazwaFirmy.SelectedIndex = -1 And cmbStatusZlecenia.SelectedIndex = -1 Then
            lvarCommand = " WHERE status_id = 4 " ' MessageBox.Show("Wybierz kryterium wyszukiwania", "WIREMET")
            'WHERE status_id <> 6 and status_id <> 5 and status_id <> 7 
        Else
            If dtpDataRealizacjiOd.Value.Date > dtpDataRealizacjiDo.Value.Date Then
                MessageBox.Show("Wybierz poprawnie kryterium wyszukiwania", "WIREMET")
            Else
                If Not mvarWyznUruchomienia Then
                    lvarCommand = " WHERE "
                End If
                If txtNumerZlecenia.TextLength > 0 Then
                    lvarCommand = lvarCommand + " numer = '" & txtNumerZlecenia.Text & "'"
                    lvarWyzn = True
                End If
                If cmbNazwaFirmy.SelectedIndex <> -1 Then
                    If lvarWyzn = True Then
                        lvarCommand = lvarCommand + " AND"
                    End If
                    lvarCommand = lvarCommand + " klient_id = " & CType(cmbNazwaFirmy.SelectedItem, clsKlient).Id
                    lvarWyzn = True
                End If 'UPPER (klient.nazwa_skrocona) LIKE UPPER ('" & cmbNazwaFirmy.SelectedItem.ToString & "%')"
                If dtpDataRealizacjiOd.Checked Or dtpDataRealizacjiDo.Checked Or chbDataRealizacji.Checked Then
                    If lvarWyzn = True Then
                        lvarCommand = lvarCommand + " AND"
                    End If
                    lvarCommand = lvarCommand + " zlecenie.termin::date between '" & dtpDataRealizacjiOd.Value.Date & "' AND '" & dtpDataRealizacjiDo.Value.Date & "'"
                    lvarWyzn = True
                End If
                If cmbStatusZlecenia.SelectedIndex <> -1 Then
                    If lvarWyzn = True Then
                        lvarCommand = lvarCommand + " AND"
                    End If
                    lvarCommand = lvarCommand + " status_id = " & CType(cmbStatusZlecenia.SelectedItem, clsStatus).Id
                    lvarWyzn = True
                End If
            End If
        End If

        mvarZlecenie = New clsTrSzukanie
        mvarZlecenie.SzukajZlecenia(mvarDbHolder, lvarCommand, True)

        dgvInformacje.Rows.Clear()
        If mvarZlecenie.Zlecenia.Count = 0 Then
            MessageBox.Show("Nie ma takich zleceń.", "WIREMET")
        Else
            For Each lvarZlecenie As clsInhTrZlecenie In mvarZlecenie.Zlecenia
                lvarI += 1
                dgvInformacje.Rows.Add(lvarI, lvarZlecenie.Numer, lvarZlecenie.Klient.NazwaSkrocona, CType(lvarZlecenie.DataZamowienia, Date).ToShortDateString, CType(lvarZlecenie.Termin, Date).ToShortDateString, lvarZlecenie.Status.Nazwa)

                dgvInformacje.Rows(lvarI - 1).Tag = lvarZlecenie

                Select Case CType(lvarZlecenie.Termin, Date).ToShortDateString
                    Case Date.Today.ToString()
                        dgvInformacje.Rows.Item(lvarI - 1).DefaultCellStyle.BackColor = Color.Yellow
                    Case DateSerial(Today.Year, Today.Month, Today.Day + 1).ToString()
                        dgvInformacje.Rows.Item(lvarI - 1).DefaultCellStyle.BackColor = Color.Yellow
                    Case Is < DateSerial(Today.Year, Today.Month, Today.Day).ToString()
                        dgvInformacje.Rows.Item(lvarI - 1).DefaultCellStyle.BackColor = Color.Red
                End Select
            Next
        End If
        mvarWyznUruchomienia = False

    End Sub


    Private Sub cmdWyczyscSzczegoly_Click(sender As System.Object, e As System.EventArgs) Handles cmdWyczyscSzczegoly.Click

        txtNumerZlecenia.Text = String.Empty
        cmbNazwaFirmy.SelectedIndex = -1
        dtpDataRealizacjiOd.Text = Now.ToShortDateString()
        dtpDataRealizacjiDo.Text = Now.ToShortDateString()
        dtpDataRealizacjiOd.Checked = False
        dtpDataRealizacjiDo.Checked = False
        chbDataRealizacji.Checked = False
        cmbStatusZlecenia.SelectedIndex = -1

    End Sub

    Private Sub cmdSzukaj_Click(sender As System.Object, e As System.EventArgs) Handles cmdSzukaj.Click
        Szukaj()
    End Sub

    Private Sub dgvInformacje_CellMouseDoubleClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvInformacje.CellMouseDoubleClick

        If dgvInformacje.Rows.Count = 0 Then
            MessageBox.Show("Wybierz zlecenie", "WIREMET")
        Else
            If mvarUzytkownik.Uprawnienia("biuro") <> 0 Then
                Dim lvarFrm As New frmTrZlecenie(CType(dgvInformacje.SelectedRows(0).Tag, clsInhTrZlecenie))
                With lvarFrm
                    .MdiParent = mdiMain.ActiveForm
                    .Show()
                End With
            End If
        End If

    End Sub


    Private Sub frmSzukajZlecenia_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        mvarDbHolder.Close()
    End Sub

#Region "Changed"

    Private Sub dtpDataRealizacjiOd_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtpDataRealizacjiOd.TextChanged
        chbDataRealizacji.Checked = True
    End Sub

    Private Sub dtpDataRealizacjiDo_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtpDataRealizacjiDo.TextChanged
        chbDataRealizacji.Checked = True
    End Sub

#End Region

    Private Sub frmTrZleceniaSzukaj_Load(sender As Object, e As EventArgs) Handles Me.Load
        mvarWyznUruchomienia = True
        Szukaj()
        If dgvInformacje.Rows.Count <> 0 Then
            dgvInformacje.ClearSelection()
        End If
    End Sub

    Private Sub txtNumerZlecenia_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtNumerZlecenia.KeyPress
        If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
            If txtNumerZlecenia.Text <> String.Empty And IsNumeric(txtNumerZlecenia.Text) Then
                Szukaj()
            End If
        End If
    End Sub

End Class